package com.rfsp.mcp.pojo.vo;

import com.rfsp.common.base.BaseVO;
import com.rfsp.common.util.DateUtil;
import com.rfsp.common.util.DecimalUtil;
import com.rfsp.mcp.enums.McpConst;

import java.math.BigDecimal;
import java.util.Date;

public class MiPayVO extends BaseVO {
    /** 主键ID */
    private Long id;

    /** 辅助标识，防止修改主键ID查询的漏洞，不保证唯一 */
    private String aid;
    
    /** 被查询机构ID */
    private Long targetOrgId;

    /** 结算日期 YYYYMM */
    private String payNy;

    /** 医疗机构代码 */
    private String payIdno;

    /** 医疗机构名称 */
    private String payMc;

    /** 结算人次 */
    private String payRc;

    /** 医疗类别 */
    private String payYllb;

    /** 险种类型 */
    private String payXzlx;

    /** 总费用 */
    private BigDecimal payTotalfee;

    /** 个人现金 */
    private BigDecimal payGrzf;

    /** 基金支付 */
    private BigDecimal payJjzf;

    /** 查询记录表ID */
    private Long payLogId;

    /** 操作用户ID */
    private Long optUserId;

    /** 操作时间 */
    private Date optTime;

    /** 操作类型（1.新增 2.修改 3.删除） */
    private String optType;

    /** null */
    private String remark1;

    /** null */
    private String remark2;

    /** null */
    private String remark3;

    /** null */
    private String remark4;

    /** null */
    private String remark5;

    //结算起始日期 申请医保结算的开始日期 格式：YYYY-MM-DD
    private Date payStartDate;

    //结算终止日期 申请医保结算的结束日期 格式：YYYY-MM-DD
    private Date payeEndDate;

    //申报人次 当期使用医保支付的患者人次
    private Integer personTimes;

    //医保支付申请流水编号 当期申请医保基金支付的系统数据凭证号
    private String payApplyFlowno;

    //申报金额（元） 当期使用申请医保支付金额
    private BigDecimal applyAmount;

    //医疗总费用（元） 当期使用医保支付的患者相关的医疗总费用
    private BigDecimal totalAmount;

    //基金支付合计（元） 当期医保基金实际支付的金额
    private BigDecimal fundPayment;

    //账户支付合计（元） 当期使用医保支付的患者“个人医保账户”实际支付合计数
    private BigDecimal accountPayment;

    //现金支付合计（元） 当期使用医保支付的患者经医保报销后，个人需要承担的自费部分（使用现金/银行卡/移动支付等支付合计数）
    private BigDecimal cashPayment;

    //支付时间 资金的实际拨付时间 格式：YYYY-MM-DD HH:mm:ss
    private Date payTime;

    //支付款项备注 可备注说明支付款项类型，如城乡门诊类型
    private String payRemark;

    //款项性质
    private String paymentNature;

    //查询原因
    private String queryReason;

    //json每条存储是否成功，如一条失败，记录失败信息，并不影响其他数据存储
    private String isStoragefailed;//是否存储失败
    private String StoragefailedMsg;//存储失败原因

    private String xzlxStr;
    private String yllbStr;
    private Date payNyDate;

    private String payTotalfeeStr;

    private String payGrzfStr;
    private String payJjzfStr;
    private String areaCode;

    public String getIsStoragefailed() {
        return isStoragefailed;
    }

    public void setIsStoragefailed(String isStoragefailed) {
        this.isStoragefailed = isStoragefailed;
    }

    public String getStoragefailedMsg() {
        return StoragefailedMsg;
    }

    public void setStoragefailedMsg(String storagefailedMsg) {
        StoragefailedMsg = storagefailedMsg;
    }

    public Date getPayNyDate() {
        return DateUtil.String2Date(this.getPayNy());
    }

    public void setPayNyDate(Date payNyDate) {
        this.payNyDate = payNyDate;
    }

    public String getYllbStr() {
        return McpConst.YLLB.getVal(this.getPayYllb());
    }

    public void setYllbStr(String yllbStr) {
        this.yllbStr = yllbStr;
    }

    public String getXzlxStr() {
        return McpConst.XZLX.getVal(this.getPayXzlx());
    }

    public void setXzlxStr(String xzlxStr) {
        this.xzlxStr = xzlxStr;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getAid() {
        return aid;
    }

    public void setAid(String aid) {
        this.aid = aid;
    }

    public String getPayNy() {
		return payNy;
	}

	public void setPayNy(String payNy) {
		this.payNy = payNy;
	}

	public String getPayIdno() {
        return payIdno;
    }

    public void setPayIdno(String payIdno) {
        this.payIdno = payIdno;
    }

    public String getPayMc() {
        return payMc;
    }

    public void setPayMc(String payMc) {
        this.payMc = payMc;
    }

    public String getPayRc() {
        return payRc;
    }

    public void setPayRc(String payRc) {
        this.payRc = payRc;
    }

    public String getPayYllb() {
        return payYllb;
    }

    public void setPayYllb(String payYllb) {
        this.payYllb = payYllb;
    }

    public String getPayXzlx() {
        return payXzlx;
    }

    public void setPayXzlx(String payXzlx) {
        this.payXzlx = payXzlx;
    }

    public BigDecimal getPayTotalfee() {
        return payTotalfee;
    }

    public void setPayTotalfee(BigDecimal payTotalfee) {
        this.payTotalfee = payTotalfee;
    }

    public BigDecimal getPayGrzf() {
        return payGrzf;
    }

    public void setPayGrzf(BigDecimal payGrzf) {
        this.payGrzf = payGrzf;
    }

    public BigDecimal getPayJjzf() {
        return payJjzf;
    }

    public void setPayJjzf(BigDecimal payJjzf) {
        this.payJjzf = payJjzf;
    }

    public Long getPayLogId() {
        return payLogId;
    }

    public void setPayLogId(Long payLogId) {
        this.payLogId = payLogId;
    }

    public Long getOptUserId() {
        return optUserId;
    }

    public void setOptUserId(Long optUserId) {
        this.optUserId = optUserId;
    }

    public Date getOptTime() {
        return optTime;
    }

    public void setOptTime(Date optTime) {
        this.optTime = optTime;
    }

    public String getOptType() {
        return optType;
    }

    public void setOptType(String optType) {
        this.optType = optType;
    }

    public String getRemark1() {
        return remark1;
    }

    public void setRemark1(String remark1) {
        this.remark1 = remark1;
    }

    public String getRemark2() {
        return remark2;
    }

    public void setRemark2(String remark2) {
        this.remark2 = remark2;
    }

    public String getRemark3() {
        return remark3;
    }

    public void setRemark3(String remark3) {
        this.remark3 = remark3;
    }

    public String getRemark4() {
        return remark4;
    }

    public void setRemark4(String remark4) {
        this.remark4 = remark4;
    }

    public String getRemark5() {
        return remark5;
    }

    public void setRemark5(String remark5) {
        this.remark5 = remark5;
    }

	public Long getTargetOrgId() {
		return targetOrgId;
	}

	public void setTargetOrgId(Long targetOrgId) {
		this.targetOrgId = targetOrgId;
	}
    
    private String payYllbName;
    private String payXzlxName;

    public String getPayYllbName() {
        return payYllbName;
    }

    public void setPayYllbName(String payYllbName) {
        this.payYllbName = payYllbName;
    }

    public String getPayXzlxName() {
        return payXzlxName;
    }

    public void setPayXzlxName(String payXzlxName) {
        this.payXzlxName = payXzlxName;
    }

    private String targetOrgName;
    private Long num;
    private String payYearMonth;

    public String getTargetOrgName() {
        return targetOrgName;
    }

    public void setTargetOrgName(String targetOrgName) {
        this.targetOrgName = targetOrgName;
    }

    public Long getNum() {
        return num;
    }

    public void setNum(Long num) {
        this.num = num;
    }

    public String getPayYearMonth() {
        return payYearMonth;
    }

    public void setPayYearMonth(String payYearMonth) {
        this.payYearMonth = payYearMonth;
    }

    public Date getPayStartDate() {
        return payStartDate;
    }

    public void setPayStartDate(Date payStartDate) {
        this.payStartDate = payStartDate;
    }

    public Date getPayeEndDate() {
        return payeEndDate;
    }

    public void setPayeEndDate(Date payeEndDate) {
        this.payeEndDate = payeEndDate;
    }

    public Integer getPersonTimes() {
        return personTimes;
    }

    public void setPersonTimes(Integer personTimes) {
        this.personTimes = personTimes;
    }

    public String getPayApplyFlowno() {
        return payApplyFlowno;
    }

    public void setPayApplyFlowno(String payApplyFlowno) {
        this.payApplyFlowno = payApplyFlowno;
    }

    public BigDecimal getApplyAmount() {
        return applyAmount;
    }

    public void setApplyAmount(BigDecimal applyAmount) {
        this.applyAmount = applyAmount;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getFundPayment() {
        return fundPayment;
    }

    public void setFundPayment(BigDecimal fundPayment) {
        this.fundPayment = fundPayment;
    }

    public BigDecimal getAccountPayment() {
        return accountPayment;
    }

    public void setAccountPayment(BigDecimal accountPayment) {
        this.accountPayment = accountPayment;
    }

    public BigDecimal getCashPayment() {
        return cashPayment;
    }

    public void setCashPayment(BigDecimal cashPayment) {
        this.cashPayment = cashPayment;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public String getPayRemark() {
        return payRemark;
    }

    public void setPayRemark(String payRemark) {
        this.payRemark = payRemark;
    }

    public String getPaymentNature() {
        return paymentNature;
    }

    public void setPaymentNature(String paymentNature) {
        this.paymentNature = paymentNature;
    }

    public String getQueryReason() {
        return queryReason;
    }

    public void setQueryReason(String queryReason) {
        this.queryReason = queryReason;
    }

    public String getPayTotalfeeStr() {
        payTotalfeeStr = DecimalUtil.format3(this.getPayTotalfee());
        return payTotalfeeStr;
    }

    public void setPayTotalfeeStr(String payTotalfeeStr) {
        this.payTotalfeeStr = payTotalfeeStr;
    }

    public String getPayGrzfStr() {
        payGrzfStr = DecimalUtil.format3(this.getPayGrzf());
        return payGrzfStr;
    }

    public void setPayGrzfStr(String payGrzfStr) {
        this.payGrzfStr = payGrzfStr;
    }

    public String getPayJjzfStr() {
        payJjzfStr = DecimalUtil.format3(this.getPayJjzf());
        return payJjzfStr;
    }

    public void setPayJjzfStr(String payJjzfStr) {
        this.payJjzfStr = payJjzfStr;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }
}
